package main

import "fmt"

func main() {
	/*
		1. 使用var <var_name> <var_type>声明变量
	*/
	//声明时使用 var <var_name> <var_type>
	var a string = "Runoob"
	fmt.Println(a)

	var b, c int = 1, 2
	fmt.Println(b, c)
	// 如果不给初始值就是默认值
	var d int
	fmt.Println(d)

	var e bool
	fmt.Println(e)

	/*
		2. 声明时使用 <var_name> := <var_value>
		例如 val := 1  等价于  var val int = 1

		注意：如果变量已经声明过了，再使用 :=会报错
	*/
	val := 1
	str := "Runoob"
	fmt.Println(val)
	fmt.Println(str)

	/*
		3. 多变量声明
	*/
	//var vname1, vname2, vname3 string
	//vname1, vname2, vname3 = "v1", "v2", "v3"
	vname1, vname2, vname3 := "v1", "v2", "v3"
	fmt.Println(vname1, vname2, vname3)

	/*
		// 这种因式分解关键字的写法一般用于声明全局变量
		var (
		    vname1 v_type1
		    vname2 v_type2
		)
	*/

	/*
		4. 声明时不指定类型，自动判断
		var v_name = value
	*/
	var varName = true

	fmt.Println(varName)
}
